﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;

namespace _201206QuanLyBanHang
{
    class MinhConnect
    {
        private SqlConnection con;
        private DataTable dt;
        private SqlDataAdapter da;
                

        public MinhConnect()
        {
            connect();
        }
        public void connect()
        {
            String cn = "server=(local);database=QuanLyBanHang;Trusted_Connection=True";
            //String cn = "Server=OOP;Database=QuanLyBanHang;"
            // + "User ID=sa;Password=123;Trusted_Connection=False;connection timeout=7";
            try
            {
                con = new SqlConnection(cn);
                con.Open();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Khong the ket noi, lỗi: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        public void disconnect()
        {
            con.Close();
            con.Dispose();
            con = null;
        }
       //Hàm lấy dữ liệu và đưa vào datatable
        public DataTable GetDataTable(String sql)
        {
            //tao dataAdapte, để thực thi câu lệnh truy vấn
            connect();
            da = new SqlDataAdapter(sql, con);
            //do du lieu vào datatable
            dt = new DataTable();
            da.Fill(dt);
            disconnect();
            return dt;
        }

        //Hàm thực hiện câu truy vấn Insert, Update, Delete
        public Boolean ExecuteQuery(String sql)
        {
            connect();
            int sodong = 0; // số dòng ảnh hưởng của câu lệnh sql
            try
            {
                SqlCommand cmd = new SqlCommand(sql, con);
                sodong = cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Lỗi: " + ex.Message);
            }
            disconnect();
            if (sodong > 0)
                return true;
            return false;
        }
        //Thực thi Update
        public Boolean ExecuteQueryUpdate(String sql)
        {
            connect();
            int sodong = 0; // số dòng ảnh hưởng của câu lệnh sql
            try
            {
                SqlCommand mycmd = con.CreateCommand();
                mycmd.CommandText = sql;
                sodong = mycmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Lỗi: " + ex.Message);
            }
            disconnect();
            if (sodong > 0)
                return true;
            return false;
        }

        //Viết hàm trả về các dòng dữ liệu trong Table SQL
        public double TraveDongDuLieu(String sql)
        {
            double GiaSanPhamSQL = 0;
            
            connect();
            SqlCommand mysqlcommand = con.CreateCommand();
            
            mysqlcommand.CommandText = sql;
            SqlDataReader datareader = mysqlcommand.ExecuteReader();
            while (datareader.Read())
            {
                GiaSanPhamSQL= double.Parse(datareader[0].ToString());
            }
            datareader.Close();
            disconnect();
            if (GiaSanPhamSQL == 0) //Trường hợp ko có dữ liệu trả về thì mặc định bằng 0
                return 0;
            return GiaSanPhamSQL;
        }
        public String TraveDongDuLieuString(String sql)
        {
            String GiaSanPhamSQL = "";

            connect();
            SqlCommand mysqlcommand = con.CreateCommand();

            mysqlcommand.CommandText = sql;
            SqlDataReader datareader = mysqlcommand.ExecuteReader();
            while (datareader.Read())
            {
                GiaSanPhamSQL = datareader[0].ToString();
            }
            datareader.Close();
            disconnect();
            if (GiaSanPhamSQL == "0") //Trường hợp ko có dữ liệu trả về thì mặc định bằng 0
                return "0";
            return GiaSanPhamSQL;
        }
    }
}
